package com.getui.java.template;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import com.getui.java.COMM;
import com.gexin.rp.sdk.base.IPushResult;
import com.gexin.rp.sdk.base.impl.AppMessage;
import com.gexin.rp.sdk.http.IGtPush;
import com.gexin.rp.sdk.template.TransmissionTemplate;

public class TransmissionTemplateDemo {

	public static TransmissionTemplate transmissionTemplateDemo() {
		TransmissionTemplate template = new TransmissionTemplate();
		template.setAppId(COMM.appId);
		template.setAppkey(COMM.appKey);
		// 透传消息设置，1为强制启动应用，客户端接收到消息后就会立即启动应用；2为等待应用启动
		template.setTransmissionType(2);
		template.setTransmissionContent("请输入需要透传的内容");
		// 设置定时展示时间
		// template.setDuration("2015-01-16 11:40:00", "2015-01-16 12:24:00");
		return template;
	}

	public static void main(String[] args) throws IOException {

		IGtPush push = new IGtPush(COMM.url, COMM.appKey, COMM.masterSecret);

		// 定义"点击链接打开通知模板"，并设置标题、内容、链接
		TransmissionTemplate template = transmissionTemplateDemo();

		List<String> appIds = new ArrayList<String>();
		appIds.add(COMM.appId);

		// 定义"AppMessage"类型消息对象，设置消息内容模板、发送的目标App列表、是否支持离线发送、以及离线消息有效期(单位毫秒)
		AppMessage message = new AppMessage();
		message.setData(template);
		message.setAppIdList(appIds);
		message.setOffline(true);
		message.setOfflineExpireTime(1000 * 3600);
		// 可选，1为wifi，0为不限制网络环境。根据手机处于的网络情况，决定是否下发
		message.setPushNetWorkType(0);
		// 全量推送个推控制下发速度在100条/秒，只有toApp支持定速推送。
		message.setSpeed(100);

		IPushResult ret = push.pushMessageToApp(message);
		System.out.println(ret.getResponse().toString());
		// {result=ok, contentId=OSA-1208_m9Qmrwmwvc5ev2HpXijsi}

		if ("ok".equals(ret.getResponse().get("result"))) {
			System.out.println("发送成功");
		} else {
			System.out.println("发送失败");
		}
	}
}
